/*
-----------------------------------------------------------------------------
This source file is part of Labor3D
(Labor 3D Graphics Engine)

Copyright (c) 2009-2020 Rock Mao
* creator : Rock Mao
* created : 2011-2-13   10:01
* filename: LaborModelDecl.h
-----------------------------------------------------------------------------
*/
#ifndef __LABORMODELDECL_H__
#define __LABORMODELDECL_H__
#include "../LaborCoreDef.h"
#include "../Mem/stl_dllalloc.h"
#include "../Common/LaborResourceManager.h"
NAMESPACE_LABOR3D_BEGIN;

class LABORCORE_API CLBaseModel;
class LABORCORE_API CLModelLoader;
class LABORCORE_API CLMeshName;

class LABORCORE_API CLBaseMesh;
class LABORCORE_API CLMeshReadWriter;


//void LABORCORE_API XRESOURCE_ReleaseObject(CLBaseMesh* ptr);
//void LABORCORE_API XRESOURCE_AddRef(CLBaseMesh* ptr);

NAMESPACE_LABOR3D_END;


NAMESPACE_LABOR3D_BEGIN
typedef std::vector<CLBaseMesh*   , dllsafe_alloc<CLBaseMesh*>   > vBaseMeshs;

typedef TResHandle<CLBaseModel , std::ds_wstring , CLModelLoader>                 HBaseModel;
typedef TLRUPolicyResMgr<CLBaseModel , std::ds_wstring , CLModelLoader>           CLBaseModelMgr;

typedef TResHandle<CLBaseMesh        , CLMeshName , CLMeshReadWriter>             HBaseMesh;
typedef TLRUPolicyResMgr<CLBaseMesh  , CLMeshName , CLMeshReadWriter>             CLBaseMeshMgr;

typedef std::vector<HBaseMesh   , dllsafe_alloc<HBaseMesh>       >                vHBaseMeshs;
NAMESPACE_LABOR3D_END
#endif
